home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / unix / src / rmdir.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-08-01  |  584 b   |  32 lines

  1. #include "amiga.h"
  2. #include <utility/tagitem.h>
  3.  
  4. int rmdir(char *name)
  5. {
  6.   struct FileInfoBlock *fib = 0;
  7.   BPTR lock = 0;
  8.  
  9.   if ((fib = AllocDosObjectTags(DOS_FIB, TAG_END)) &&
  10.       (lock = Lock(name, ACCESS_READ)) &&
  11.       Examine(lock, fib))
  12.     {
  13.       int isdir = fib->fib_DirEntryType > 0;
  14.  
  15.       UnLock(lock);
  16.       FreeDosObject(DOS_FIB, fib);
  17.  
  18.       if (isdir)
  19.     {
  20.       if (DeleteFile(name)) return 0;
  21.       ERROR;
  22.     }
  23.       errno = ENOTDIR;
  24.       return -1;
  25.     }
  26.   errno = convert_oserr(IoErr());
  27.  
  28.   if (lock) UnLock(lock);
  29.   if (fib) FreeDosObject(DOS_FIB, fib);
  30.   return -1;
  31. }
  32.